import gradio as gr
from langchain.chains.llm import LLMChain
from langchain_community.llms.openai import OpenAI
from langchain_core.prompts import PromptTemplate


# 设置 OpenAI API 密钥


def generate_text(prompt):
    # 创建一个提示模板
    template = """You are a helpful assistant.
{question}
"""
    prompt_template = PromptTemplate(input_variables=["question"], template=template)

    # 初始化大模型链
    llm_chain = LLMChain(llm=OpenAI(temperature=0.7), prompt=prompt_template)

    # 生成回复
    response = llm_chain.run(question=prompt)
    return response


# 定义输入输出接口
input_interface = gr.Textbox(lines=2, placeholder="请输入您的问题...")
output_interface = gr.Textbox()

# 创建Gradio界面
demo = gr.Interface(fn=generate_text, inputs=input_interface, outputs=output_interface,
                    title="基于LangChain & OpenAI的问答系统",
                    description="这是一个使用LangChain框架和OpenAI模型构建的简单问答系统。")

### 步骤 4: 启动应用程序
demo.launch(share=True)
